home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
12511500
/
var1273.dms
/
var1273.adf
/
AmiCDROM
/
AmiCDROM.doc
next >
Wrap
Text File
|
1992-09-02
|
21KB
|
560 lines
AmiCDROM - a CDROM filesystem for the Commodore Amiga
-----------------------------------------------------
Version 1.7 06-Dec-93 (C) 1993 by Frank Munkert
(ln_fmu@pki-nbg.philips.de)
* IMPORTANT NOTICE FOR USERS OF VERSIONS 1.0, 1.1 and 1.2:
*
* The format of the Mountlist 'Startup' field has been changed.
* Please consult the section "THE 'STARTUP' FIELD" for further information.
INTRODUCTION
AmiCDROM is a CDROM disk filing system for the Commodore
Amiga. It supports the ISO-9660 standard, the Rock Ridge
Interchange Protocol and the Macintosh HFS format.
The CDROM drive is mounted as a DOS device (e.g. CD0:). You
can access files and directories on a CDROM disk by the usual
syntax, e.g. "type cd0:foo/readme.txt".
DISCLAIMER
This software is provided as-is, without warranty of any kind,
either expressed or implied. In no event will the author be liable
for direct, indirect, incidental or consequential damages or data
loss resulting from the use or application of this software. The
entire risk as to the results and performance of this software is
assumed by the user.
REQUIREMENTS
AmiCDROM should work with any Amiga model which has a "SCSI-direct"
compatible SCSI bus adapter. (It might also work with SCSI drivers
that have no SCSI-direct feature; see 'T' option.)
The running handler requires about 60K of memory (with default parameter
settings).
INSTALLATION
1. Copy the 'cdrom-handler' file to L:cdrom-handler.
2a If you use Workbench 2.0:
Create an entry in DEVS:MountList like this:
CD0: Handler = L:cdrom-handler
Stacksize = 10000
Priority = 5
GlobVec = -1
Mount = 1
Startup = "scsi.device 1 ROCKRIDGE LOWERCASE" /* see below */
#
You can choose any name you like for "CD0".
Install the handler in DOS using the CLI command "Mount CD0:".
If there is a problem during mounting, AmiCDROM will put up a
requester with an error message.
If you use AmiCDROM regularily, you might consider to put
"Mount CD0:" in the user startup-sequence.
2b If you use Workbench 2.1 or higher:
Edit the file CD0. It contains a Mountlist as described in step 2a
(with the exception that "CD0:" and "#" are missing).
If you don't like the name "CD0", rename this file and the file
CD0.info. Use the Workbench to move the icon CD0 into the drawer
sys:Storage/DOSDrivers. Now enter the command "Mount CD0:" to
install the handler.
If you use AmiCDROM regularily, you might consider to put
the icon in the drawer WBStartup or Devs:DOSDrivers; all files in these
drawers will be mounted at startup. If the icon is in the WBStartup
drawer, the Workbench will not wait until "CD0:" is mounted; if the
icon is in Devs:DOSDrivers, the Workbench will wait. The first
method is recommendable if you want your system to come up as fast
as possible. The second method has to be used if you want to refer
to "CD0:" in your s:user-startup sequence.
IMPORTANT:
Make sure, that all assigned volume names (such as "L:") are known
at the time of mounting. Otherwise, the handler will not be
mounted, and no error message will be issued.
If you have put CD0 into DEVS:DosDrivers and the handler does not
auto-mount, then you probably have a wrong filename in the 'Handler'
or 'Startup' field.
The 'Startup' field
The 'Startup' field in the MountList is a string with the following
template:
D=DEVICE,U=UNIT/N,F=FAST/S,L=LOWERCASE/S,
R=ROCKRIDGE/S,T=TRACKDISK/S,MI=MACTOISO/S,CS=CONVERTSPACES/S,
SV=SHOWVERSION/S,HF=HFSFIRST/S,SB=STDBUFFERS/K/N,FB=FILEBUFFERS/K/N,
DE=DATAEXT/K,RE=RESOURCEEXT/K,SI=SCANINTERVAL/K/N,PC=PLAYCDDA/K
The first field (DEVICE) contains the name of your SCSI device.
The second field (UNIT) contains the target ID (aka "SCSI-ID")
of your CDROM drive. If your CDROM drive supports multiple logical units,
such as the Pioneer DRM-604X six disk changer drive, then the 10s digit
of the number in this field should be the LUN of the desired disk.
The following options may be used:
L Map ISO-9660 names to lower case
LOWERCASE
R Use Rock Ridge file names, if possible.
ROCKRIDGE
T Use trackdisk-device calls instead of SCSI-direct calls.
TRACKDISK (Some SCSI boards do not support Commodore's HD_SCSICMD
command. If you set the 'T' option, only the normal
CMD_READ is used, which will be translated by the SCSI driver
into the corresponding SCSI commands.)
F Use fast memory for SCSI buffers. Please note, that some
FAST SCSI devices can only read from or write to chip memory.
(The A3000 scsi.device is able to use fast memory.)
MI Convert Mac characters into ISO-Latin-1 (Amiga) characters.
MACTOISO (The conversion applies only to the filenames, not to
the contents of the files.) Additionally, the character
':' will be converted into a '.', and '/' will be
converted into '-'; this is necessary because AmigaDOS cannot
handle filenames containing those characters.
CS Convert spaces in MacHFS filenames into underscores ('_').
CONVERTSPACES
SV Show version numbers.
SHOWVERSION
HF If a new disk is mounted, AmiCDROM normally tests first
HFSFIRST if the new disk is a ISO-9660 disk. If the option "HF"
is given, then the disk is first examined for a HFS
partition.
This option is useful if you have a "multi-platform"
disk with both a ISO-9660 and a HFS partition. Without
the option you get the ISO partition; with the option
you get the HFS partition.
SB Number of 2048 byte buffers for general access to the
STDBUFFERS CDROM drive. Default = 5 buffers
FB Number of 2048 byte buffers for file access with the
FILEBUFFERS AmigaDOS Read() call. Default = 5 buffers
DE Extension for the data fork of a file on MacHFS disks.
DATAEXT
RE Extension for the resource fork of a file on MacHFS disks.
RESOURCEEXT (If neither DE nor RE are given, DE is set to the empty
string and RE is set to ".rsrc".)
SI Time between two successive diskchange checks.
SCANINTERVAL Default = 3 seconds.
If the value of this option is 0, then no diskchange
checks will be performed; in this case, you have to use
the DISKCHANGE command in order to inform AmiCDROM that
a disk has been changed.
PC Name of the command to be executed if the user double-
PLAYCDDA clicks at the "CD-DA" icon. If you want to execute
a command with parameters, you have to create
a script file containing the command plus parameters.
The name of the script file has to be passed as an
argument to the PC option. Don't forget to set the
"S" protection bit of the script file.
I recommend to specify at least LOWERCASE and ROCKRIDGE, for better
readability.
Example:
Startup = "foo.device 3 ROCKRIDGE SB=10 FB=10 DE=.1 RE=.2"
Use the device "foo.device" and unit number 3. Use Rock Ridge
if possible and use 10 buffers for standard SCSI access (SB=10) and
for file access (FB=10). In HFS filenames, mark the data fork with
the extension ".1" (DE=.1) and the resource fork with the
extension ".2" (RE=.2).
Older Mount commands (e.g. those distributed with Workbench 2.0)
cannot handle space characters and "=" signs within startup
parameters. In AmiCDROM, the following workaround has been made
available: every '-' sign will be replaced internally by a space
character. This means that
Startup = "foo.device-3-ROCKRIDGE-SB-10-FB-10-DE-.1-RE-.2"
is equivalent to the example above.
If you really need a '-' character in the startup field (e.g. if
the name of your device is "my-scsi.device"), then you have
to write '--' instead of '-', e.g.
Startup = "my--scsi.device-3"
USING AMICDROM
You may use "CD0:" as if were an ordinary volume, i.e. you may
execute commands such as:
dir cd0:
cd cd0:
type cd0:readme.txt
CDROM FILENAMES (ISO-9660 and RockRidge)
A standard CDROM disk ("volume") contains a ISO-9660 directory tree.
ISO file names have the following format:
FILENAME.EXTENSION;VERSION
e.g. README.TXT;1
The filenames may contain upper-case letters, digits and underscores.
AmiCDROM normally ignores the version number of a file. If you
specify the option "SV", however, the version numbers will be
displayed. If you have to supply a file name, you may or may not
specify a version number. E.g. in order to type the contents of the file
README.TXT;1 you might use one of the following commands:
type readme.txt
type "readme.txt;1"
(don't forget the quotation marks!)
If a directory contains more than one file with the same name (and
different version numbers), then you have to supply the version number
in order to be able to choose the version you want.
Filenames may be mapped to lower-case by specifying the startup option "L".
Lower-case names are generally easier to read than upper-case names.
ISO filenames have a limited length and format. To overcome this
restriction, the Rock Ridge Group has devised the Rock Ridge Interchange
Protocol which allows arbitrary filenames. Rock Ridge filenames
are stored in so-called "system use areas" within the ISO-9660
filesystem.
By specifying the startup option "R", AmiCDROM recognizes Rock Ridge
filenames on a Rock Ridge CDROM disk.
DISKCHANGE RECOGNITION
In order to recognize a "disk changed" condition, the CDROM drive is
periodically (each 3 seconds) queried by the filesystem handler.
On some Amigas this may cause the "Hard Disk" LED to flash every
3 seconds. Obviously, the "Hard Disk" LED isn't actually connected to
a hard disk drive; it is simply an indicator for SCSI bus activity.
The time between two successive diskchange checks can be modified
with the SCANINTERVAL option. If this option is set to 0, no diskchange
checks will be performed. This might especially be useful for BBS
systems, where disks aren't changed very often.
You may force a diskchange check with the AmigaDOS DISKCHANGE
command, e.g. "DISKCHANGE CD0:".
FILE ATTRIBUTES
In the current version of AmiCDROM, only the "creation date"
attribute of a CDROM file is supported (e.g. if you say "list cd0:").
Protection bits will be supported in a later version of AmiCDROM.
MACINTOSH HFS FORMAT
Each MacHFS file consists of two parts: a "data fork" and a "resource
fork". Each fork may be regarded as an individual file. Both the
data fork and the resource fork may be empty.
AmiCDROM treats each fork as an individual file. While other CDROM
filesystems may require you to switch between the modes "show only
data forks" and "show only resource forks", AmiCDROM displays both
data and resource forks in one directory. If either of the two forks
is empty, it will not be displayed.
By default, the resource fork is marked with the extension ".rsrc".
You may change the extensions with the options DATAEXT and RESOURCEEXT.
MacHFS file names tend to contain lots of space characters. If you
don't like this, you may use the switch CONVERTSPACES to convert
all space characters into underscores.
The Macintosh uses a slightly different character set than the
Amiga. The upper 128 characters in the Amiga character set
correspond to the ISO-Latin-1 standard. The upper 128 characters in
the Macintosh character set, however, are specific to the Mac.
If you want to convert Mac characters in filenames into ISO-Latin-1
characters, you should use the MACTOISO option.
AUDIO DISKS (CD-DA)
If a disk that contains one or more audio tracks is inserted into the
drive, AmiCDROM will display an icon with the name "CD-DA". If you
double-click on this icon, the CDROM drive will start to play the
first track on the disk. If you double-click on this icon again, the
CDROM drive stops playing.
If you want to use a more sophisticated way to handle audio disks,
you may provide the name of a CD-DA player program as an argument
to the PLAYCDDA option. Recommendable programs are "JukeBox" by
F-J. Reichert, which uses a CD-player like user-interface, and
"PlayCDDA" by the author of AmiCDROM. PlayCDDA is suitable only
for Toshiba 3401 CDROM drives; these drives can send CD-DA data
over the SCSI bus. PlayCDDA reproduces the sound which is recorded
on the disk on the Amiga's audio.device.
You can use this feature only if the TRACKDISK option is not
enabled, and if your CDROM drive supports audio commands.
BUGS AND NOT SUPPORTED FEATURES
Bugs: If you find any bugs, please send an e-mail message to:
ln_fmu@pki-nbg.philips.de
Not supported features:
- Interleaved mode (ISO)
- Multi-disk volumes (ISO)
- Multi-volume disks (ISO)
- Deep directory relocation (Rock Ridge)
These features aren't unsupported because of laziness of the
author. He hasn't simply been able to find a CDROM disk which
uses any of the above features. If you know of such a disk,
please send e-mail to the above address.
THE 'CDCONTROL' PROGRAM
The 'cdcontrol' lets the user change parameters of the CDROM handler
while the handler is running. These changes are only temporary, and
persist only as long as the handler is running.
'cdcontrol' is invoked as
cdcontrol device: command
where 'command' may be one of the following commands:
lowercase on Convert ISO filenames to lowercase
lowercase off Don't convert ISO filenames
mactoiso on Convert Mac to Amiga characters
mactoiso off Don't convert Mac filenames
convertspaces on Convert HFS spaces into underscores
convertspaces off Don't convert spaces in HFS filenames
hfsfirst on Look for a HFS partition first
hfsfirst off Look for an ISO partition first
dataext <name> Set extension for HFS data forks
resourceext <name> Set extension for HFS resource forks
Example:
cdcontrol CD0: dataext ".data"
All command names may be abbreviated to the one- or two-letter
abbreviations shown in the section "The 'Startup' field".
THE 'CDROM' PROGRAM
The 'cdrom' program is mainly for developers of AmiCDROM.
However, there are some features which might be useful to
everyone.
In order to use 'cdrom' you have to set the following
environment variables:
CDROM_DEVICE Name of your SCSI device, e.g. "scsi.device"
CDROM_UNIT SCSI-ID of your CDROM drive, e.g. "2"
CDROM_TRACKDISK Has to be set to any value if you want to use
trackdisk commands only.
CDROM_FASTMEM Has to be set to any value if you want to use
fast memory instead of chip memory for buffers.
Here are some useful commands:
cdrom a Show information on the CDROM drive.
cdrom d[rl] dir Show directory 'dir'.
Option r: also show subdirectories.
Option l: show additional information.
cdrom e[rl] dir Show directory 'dir' using Rock Ridge names.
Option r: also show subdirectories.
Option l: show additional information.
cdrom i Show the format (ISO, RR or HFS) of the current disk.
cdrom s num Read the contents of sector 'num'.
cdrom v Show the primary volume descriptor of the CDROM disk.
cdrom z Test if the CDROM drive is ready.
THANKS
I would like to send many thanks for their help and encouragement to:
Thomas Baetzler
Stefan Becker
Johanna Berewinkel
Dirk-Michael Brosig
Richard L. Dyson
Phillip Eastham
Jos Fries
Oliver Graf
Christoph Guelicher
Carsten Hammer
Rainer Hess
Martin Jahner
Stephan Kohler
Roy S. Laufer
W. R. Leach
Bo Najdrovsky
Dylan McNamee
Thomas J. Moore
Henning Schmiedehausen
Bill Seymour
Mark Tomlinson
Roy Trevino
Jim Zepeda
Especially I would like to thank
Olaf Barthel
for his many valuable hints on how to improve AmiCDROM.
CONTACTING THE AUTHOR
Please send bug reports and suggestions to:
Email: ln_fmu@pki-nbg.philips.de
Mail: Frank Munkert
Zum Froschbruecklein 5
90411 Nuernberg
Germany
If you want to report an error, please describe your system
configuration (Amiga model, SCSI device name, CDROM drive model)
and include your MountList entry for the "CD0:" device.
----------------------------------------------------------------------
TODO:
=====
* Support for multisession disks (such as PhotoCDs).
* AmigaDOS protection bits should reflect the protection status as
stored on the disk (especially for RR disks).
* Support for symbolic links on RockRidge disks.
HISTORY:
========
Changes in V1.7:
* Some packets are now handled even if no disk is inserted (e.g. the
ACTION_INHIBIT packet). Otherwise WB would bring up the requester "No Disk
in drive CD0:" when the system is booted without a CD in the drive.
* Improved "cdrom d" and "cdrom e" commands.
* Removed call to GetDefDiskObject(). This call sometimes caused a crash,
because GetDefDiskObject sends/receives DOS packets. A DOS handler isn't
allowed to do this.
* Added custom CD-DA icon.
* Support for logical block sizes of 512, 1024 and 2048 bytes.
* Fixed bug in HFS module.
* Option MACTOISO now also converts ':' and '/' characters.
* Options MACTOISO and CONVERTSPACES now also apply to volume names.
Changes in V1.6:
* CD-DA support; new option: PLAYCDDA.
* New option: SCANINTERVAL (user-programmable diskchange check interval).
* Better support for ACTION_INHIBIT packet.
* Allows ISO filenames with ';' characters.
* Can now be compiled with DICE 2.07.56R.
Changes in V1.5:
* Make Toshiba-3401 drives switch between XA and normal mode, depending
on the inserted disk. (Useful for PhotoCDs.)
* New option: SHOWVERSION.
* New option: HFSFIRST.
* Fixed a bug which caused an enforcer hit with the "cdrom" program.
* "cdcontrol" control program.
Changes in V1.4:
* Added Mac HFS support.
* The path table of ISO disks is no longer examined. This results in a
little speed increase. Furthermore, the FishMarket V2.0 disk by AsimWare
(which has a corrupted path table) can now be read with AmiCDROM.
* Bug fix: if a there is a disk change immediatedly before mounting AmiCDROM,
the new disk will now be recognized.
* SAS/C support for debug process (dbproc.a).
Changes in V1.3:
* Improved caching algorithm.
* New buffering options 'STDBUFFERS' and 'FILEBUFFERS'.
* Fixed bug with locks containing wrong fl_Volume entry. Now the AmigaDOS
shell should show the correct volume prompt.
* New format for the Mountlist 'Startup' field.
* Compiled with small memory model.
* Uses utility.library in order to reduce the size of the executable.
* Recognizes if a non-ISO disk is in the CDROM drive and creates a
'no DOS disk' volume node. This solves some problems with Audio-CDs.
* The volume node now contains the volume creation date.
* Can now be compiled with SAS/C and DICE in addition to Aztec C.
Changes in V1.2:
* Support for new packets: ACTION_SAME_LOCK, ACTION_IS_FILESYSTEM,
ACTION_CURRENT_VOLUME.
* Send 'disk inserted' or 'disk removed' event, so that the Workbench
detects disk changes faster.
* Added fast memory option 'F'.
* Writing ACTIONs now return a 'write protected' error status.
* Unload handler after ACTION_DIE.
* Immediately terminate program if called from CLI.
* Set volume label to "Unnamed" for disks without name.
* Added support for LUNs other than 0.
* Included an icon for the Mountlist.
* DOS list changes now bracketed by Forbid() and Permit().
* Corrected another ACTION_SEEK bug.
* Handler cannot be killed if locks or filehandles are in use.
Changes in V1.1:
* Bug in ACTION_SEEK handling fixed.
* Bug with top-level ACTION_EXAMINE_OBJECT for Rock Ridge disks fixed.
* Added code to detect whether a lock stems from the current volume
or from another volume which has been removed from the drive.
(In this case the error 'object not found' (205) is reported.)
* Added support for trackdisk calls. (Startup option 'T')